【python+selenium】纯自动化解决web端短信验证码测试问题

您所在的位置:网站首页 淘宝 跳过登录怎么解决问题 【python+selenium】纯自动化解决web端短信验证码测试问题

【python+selenium】纯自动化解决web端短信验证码测试问题

2024-07-07 17:06| 来源: 网络整理| 查看: 265

解决验证码的问题无非就是几种方法: 1.让开发把验证码代码删掉 2.用万能验证码 3.写一个app,监听手机短信,把验证码放在文档里,再用python截取(神仙操作) 4.通过接口 5.手动输入验证码(那不是成半自动化了) 经过我的冥思苦想我想到了一个很简单的方法,就是把selenium和appium结合起来

思路:

1.首先配好移动端自动化环境 2.连接手机与电脑,别忘了打开appium(手机必须有sim卡,能收到短信,不然你测什么验证码) 3.写好在web端输入手机号,点击获取验证码的代码 4.重点来了,接着在web自动化代码写移动端代码,正常导包,添加手机和安装包信息,调起手机,运行短信,(注意:因为短信是系统app,下载不到安装包,所以在手机下载一个叫apk提取器的app,可以提取系统应用的安装包) 5.点开验证码,用uiautomatorviewer获取到验证码的值(可能会有一个坑,如果你的手机像小米一样,验证码都归在一起了,那就会出现一个页面有不止一个验证码,没办法定位,所以要注意的就是在运行代码之前把手机里其他的验证码删掉,这样定位就肯定是刚发来的验证码) 6.把刚获取到的值输入到web端的文本框里

代码: #导包省略了 self.driver.find_element_by_xpath('手机号的xpath').send_keys('11111111111') time.sleep(2) self.driver.find_element_by_xpath('点击获取验证码的xpath').click() #import os, sys from appium import webdriver desired_caps = { 'platformName': 'Android', # 设备系统 'deviceName': 'f0eb6a74', # 设备名称 'platformVersion': '9', # 设备系统版本 'appPackage': 'com.android.mms', # apk包名 'appActivity': 'com.android.mms.ui.MmsTabActivity' # apk的launcherActivity } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) time.sleep(2) driver.tap([(796, 2027)])#以下为手机操作(每部手机分辨率不同,坐标不同) time.sleep(10) driver.tap([(620, 620)])#点击短信条目 time.sleep(3) MmsCode = driver.find_element_by_id('com.android.mms:id/information_title2').text#获取短信验证码 time.sleep(2) self.driver.find_element_by_xpath('//*[@id="vue"]/div/div[3]/input').send_keys(MmsCode)#在web端输入验证码

#学习笔记



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3